Computer systems have been used for many years to simulate 3D environments. The complexity of computerized simulators ranges from the simulation of a 3D environment for a game or driving instruction simulator to a high fidelity simulator such as realistic military training simulators. Most of these systems have a number of common elements that are used to make them work. From a high level viewpoint, a simulated environment is created using mathematically modeled structures, and textures or colors are applied over this mathematical framework as a type of skin. Then lighting and shading can be added to the environment. All of this information is viewed by a user using an eyepoint in the environment that samples the appropriate information from the environment.
A simulation system that utilizes a personal computer system may only have a CRT screen for viewing the environment from the eyepoint and a mouse or joystick for input. In contrast, high performance vehicle simulators typically include a cab that is a mock-up of a vehicle, which contains an operator compartment and vehicle instruments and controls. The cab is mounted on a motion base, which provides motion and acceleration cues by moving the cab around. The motion base is coupled to a visual system, which provides the out-the-window imagery and important environmental data for the operator(s) and/or host.
In a high performance simulator, a software system called the host oversees the operation of the simulator. The host monitors the control inputs provided by the operator, and causes the cockpit dials, instruments and displays to reflect the ongoing status of the simulated mission. In addition, the host controls the motion base and related audio systems, and tells the visual system what it needs to know to draw the corresponding out-the-window scene. A real-time system is a software program that is used within the visual system to control the image generator in response to host inputs.
The host tells the real-time system the position of things in the simulated environment (e.g., own aircraft, traffic aircraft, ground traffic, storms, etc.), the status of switchable or selectable things (e.g., runway and environmental lights, runway contamination, etc.), and the setting of global environmental effects like illumination (e.g., day, dusk, night) and visibility (e.g., fog, rain, snow, etc.). The real-time system returns data such as the nature of the surface beneath the tires of the aircraft, and whether collisions have occurred between the aircraft and other traffic or storm cells. This communication is largely asynchronous which means it occurs randomly as needed and is not locked to the ongoing computation of regular image frames.
The real-time system gets the required scene data from disk storage and loads it into the appropriate parts of the image generator in an on-going background process called paging. It also sends commands to the image generator to implement lighting, environmental, and other special effects called for by the host. It determines the proper level-of-detail (LOD) for scene elements and prepares them for rendering after eliminating those elements that will not appear in any window. This process includes the translations and rotations needed to get scene elements into their proper position within the scene. The real-time system also manages the rendering portion of the image generator in a synchronous, lock-step fashion that guarantees a steady stream of video to the displays.
A high fidelity simulation system, such as the one described, contains many different types of scene elements such as terrain, areal features such as tree canopies, linear features (roads, hedgerows, fences), and point features (trees, power poles, houses, light points).
Other models are also included in the system such as moving models of airplanes, cars, and helicopters, or environmental models such as clouds, sky, storms, or lightning flashes, etc.